查看原文
其他

scau校园网认证

2017-09-05 Y叔 biobabble

当年还在读本科的文章,显然已经没什么用处了,燃鹅,我想说的是,懂一点点编程,真心可以改善生活质量 -,-

锐捷认证。非标准的802.1认证。 我采用mystar来认证,但是不会重连。。
我自已写了个shell script来实现断线后重连。。。

华农现在的校园网用锐捷认证,windows下的认证程序还行。linux下的客户端垃圾得不得了啊。。我用苹果笔记本PowerBookG3(fireware)。锐捷没有苹果下的认证客户端,于是我上不了网了,很是郁闷。。。

我装了gentoo。最初尝试用qemu的user-mode来虚拟x86的指令集,再用xrgsu(锐捷linux版认证程序)提供运行所需的libs。最终xrgsu可以运行。但是找不到网卡。后面我就放弃了。

拉了一个月ADSL,在一次偶然的机会我发现了mystar。mystar是用libnet+libpcap写的,关键的代码不到200行(libnet和libpcap是平台无关的分组构造发送、分组截获C函数库)mystar是网上一个叫netxray的人写的。

下面是源码http://bbs.whnet.edu.cn/upload/mystarV0.1-src.zip,解压密码是netxray 解压后:

cd mystarV0.1 make

编译。

#修改我的ID跟password。 vim mystar.conf

使用./mystar运行,并且认证成功!

随后我发现一个问题,就是不会自动重连,老是会断线。在mystar.conf里面有一段

#enable intelligent reconnect? # 1 means enable, and 0 means disable intelligentReconnect=1

我将其设置为1也不行。

这样每次过几分钟我就要^C,再./mystar,很不爽。。于是我决定写个script来实现自动重连。

一开始我采用一个笨方法。写一个循环让它过三分钟就kill
mystar,再重新运行。 如下:

#!/bin/bash cd ~/mystarV0.1 while : do    ./mystar &    sleep 180    killall mystar done

后面我改进了这个脚本。代码如下:

#!/bin/bash PATH=/bin:/usr/bin:/sbin:/usr/sbin cd ~/mystarV0.1 ./mystar & while : do    ping -c 5 -W 3 219.222.66.254 &>/dev/null    if [ $? -ne 0 ] ; then        kill -9 `pidof mystar`        ./mystar &    fi    sleep 10 done

每10秒钟ping一次华农的网关。如果不通过,证明已经断线。将mystarkill掉,并重新运行。这样子就可以了。。


只要开机运行一个这个script就行。当然也可以用rc-update将其加入到系统运行级别。现在上网根本就没感觉到认证的存在。。

电梯

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存